// PersonInterface接口规范类需要implements
// interface PersonInterface {
//   name: string;
//   age: number;
//   speak(n: number): void;
// }

// class Person implements PersonInterface {
//   constructor(
//     public name: string, 
//     public age: number
//   ) {}
//   speak(n: number): void {
//     for (let i = 0; i < n; i++) {
//       console.log(`我叫${this.name},今年${this.age}岁`)
//     }
//   }
// }

// const p = new Person('张三', 18)
// p.speak(1)


// 规范对象不用implements
// interface UserInterface {
//   name: string;
//   readonly gender?: string;
//   age?: number;
//   speak(n: number): void;
// }

// const user: UserInterface = {
//   name: '张三',
//   age: 18,
//   speak(n: number): void {
//     for (let i = 0; i < n; i++) {
//       console.log(`我叫${this.name},今年${this.age}岁`)
//     }
//   }
// }



// 规范函数
// interface AddInterface {
//   (a: number, b: number): number;
// }

// const count: AddInterface = (a: number, b: number): number => a + b



// 继承接口
// interface PersonInterface {
//   name: string;
//   age: number;
//   speak(n: number): void;
// }

// interface StudentInterface extends PersonInterface {
//   school: string;
// }

// const student: StudentInterface = {
//   name: '张三',
//   age: 18,
//   school: 'xxx',
//   speak(n: number): void {
//     for (let i = 0; i < n; i++) {
//       console.log(`我叫${this.name},今年${this.age}岁`)
//     }
//   }
// }

// 接口合并
interface PersonInterface {
  name: string;
  age: number;
}

interface PersonInterface {
  school: string;
}

const person: PersonInterface = {
  name: '张三',
  age: 18,
  school: 'xxx'
}

export {}